package com.SpotBerryServer.dao;

import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;
import com.SpotBerryServer.models.*;
/**
 * 
 * @author caracas
 *
 */
public enum Dao {
	INSTANCE;

	public List<Ubicacion> listUbicacion() {
		EntityManager em = EMFService.get().createEntityManager();
		// Read the existing entries
		Query q = em.createQuery("select m from Ubicacion m");
		List<Ubicacion> ubicaciones = q.getResultList();
		return ubicaciones;
	}
	
	public void add(String pin, String latitude, String longitude, Date hora) {
		synchronized (this) {
			EntityManager em = EMFService.get().createEntityManager();
			Ubicacion Ubicacion = new Ubicacion(pin,latitude,longitude,hora);
			em.persist(Ubicacion);
			em.close();
		}
	}

	public List<Ubicacion> getUbicacions(String pin) {
		EntityManager em = EMFService.get().createEntityManager();
		Query q = em
				.createQuery("select t from Ubicacion t where t.pin = :pin");
		q.setParameter("pin", pin);
		List<Ubicacion> ubicacions = q.getResultList();
		return ubicacions;
	}

	public void remove(long id) {
		EntityManager em = EMFService.get().createEntityManager();
		try {
			Ubicacion ubicacion = em.find(Ubicacion.class, id);
			em.remove(ubicacion);
		} finally {
			em.close();
		}
	}
}
